package com.smart.modules.genealogy.service.impl;

import java.util.List;

import com.smart.modules.genealogy.vo.PersonEventVo;
import com.smart.modules.genealogy.vo.PersonRelationshipVo;
import com.smart.system.common.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.smart.modules.genealogy.mapper.PersonEventMapper;
import com.smart.modules.genealogy.domain.PersonEvent;
import com.smart.modules.genealogy.service.IPersonEventService;

/**
 * 人员事件Service业务层处理
 */
@Service
public class PersonEventServiceImpl implements IPersonEventService
{
    @Autowired
    private PersonEventMapper personEventMapper;

    /**
     * 查询人员事件
     *
     * @param personId 人员事件主键
     * @return 人员事件
     */
    @Override
    public PersonEvent selectPersonEventByPersonId(Long personId)
    {
        return personEventMapper.selectPersonEventByPersonId(personId);
    }

    /**
     * 查询人员事件列表
     *
     * @param personEvent 人员事件
     * @return 人员事件
     */
    @Override
    public IPage<PersonEvent> selectPersonEventList(IPage<PersonEvent> page,PersonEvent personEvent)
    {
        return personEventMapper.selectPersonEventList(page,personEvent);
    }

    /**
     * 新增人员事件
     *
     * @param personEvent 人员事件
     * @return 结果
     */
    @Override
    public int insertPersonEvent(PersonEvent personEvent)
    {
        StringBuffer sb = new StringBuffer();
        List<String> eventAttachmentList = personEvent.getEventAttachmentList();
        for (String eventAttachment : eventAttachmentList) {
            sb.append(eventAttachment).append(",");
        }
        personEvent.setEventAttachment(sb.toString().substring(0,sb.toString().length()-1));
        personEvent.setCreateTime(DateUtils.getNowDate());
        return personEventMapper.insertPersonEvent(personEvent);
    }

    /**
     * 修改人员事件
     *
     * @param personEvent 人员事件
     * @return 结果
     */
    @Override
    public int updatePersonEvent(PersonEvent personEvent)
    {
        personEvent.setUpdateTime(DateUtils.getNowDate());
        return personEventMapper.updatePersonEvent(personEvent);
    }

    /**
     * 批量删除人员事件
     *
     * @param personIds 需要删除的人员事件主键
     * @return 结果
     */
    @Override
    public int deletePersonEventByPersonIds(Long[] personIds)
    {
        return personEventMapper.deletePersonEventByPersonIds(personIds);
    }

    /**
     * 删除人员事件信息
     *
     * @param personId 人员事件主键
     * @return 结果
     */
    @Override
    public int deletePersonEventByPersonId(Long personId)
    {
        return personEventMapper.deletePersonEventByPersonId(personId);
    }

    @Override
    public  List<PersonEventVo>  getPersonDetail(Long personId) {
        return personEventMapper.getPersonDetail(personId);
    }

    @Override
    public List<PersonRelationshipVo> getPersonRelationship(Long personId) {
        return personEventMapper.getPersonRelationship(personId);
    }
}
